﻿using System;
using eCommerce.db.SQLDataAccess;

namespace eCommerce.db.DALRespository
{
    public class AllSystemDal
    {
        public static int GetStatisticsByType(int storeId, int type)
        {
            DbConnection.SetConnection(DbConnection.ConnectionName.Main);            
            try
            {                
                return (int)SqlHelper.ExecuteScalar(DbCommon.ConnectionString, DbCommon.DatabaseSchema + "eCommerce_Statistics", storeId, type);
            }
            catch (Exception ex)
            {
                throw new Exception(string.Format(DbCommon.DatabaseSchema + "eCommerce_Statistics: {0}", ex.Message));
            }
        }


        /// <summary>
        /// Lấy tổng số lượng của sản phẩm còn kho hàng hoặc cửa hàng theo kích thước và mã sản phẩm
        /// eCommerce_Get_TotalQuantity_In_Warehouse_Or_Store_By_Type_Store_Size_Product 1, 1, 3, 782 (10 sp kho hàng)
        /// eCommerce_Get_TotalQuantity_In_Warehouse_Or_Store_By_Type_Store_Size_Product 2, 3, 3, 782 (2 sp phân phối sang cửa hàng)
        /// </summary>
        /// <param name="typeId">1. Warehouse | 2. Store</param>
        /// <param name="storeId">Warehouse or Store</param>
        /// <param name="productId">ProductId</param>
        /// <param name="sizeId">SizeId</param>
        /// <returns></returns>
        public static int GetTotalQuantityInWarehouseOrStoreByTypeStoreSizeProduct(int typeId, int storeId, int sizeId, int productId)
        {
            DbConnection.SetConnection(DbConnection.ConnectionName.Main);      
            try
            {
                return (int)SqlHelper.ExecuteScalar(DbCommon.ConnectionString, 
                                                        "eCommerce_Get_TotalQuantity_In_Warehouse_Or_Store_By_Type_Store_Size_Product",
                                                        typeId, storeId, sizeId, productId);
            }
            catch { return 0; }
        }

        /// <summary>
        /// Lấy tổng số lượng của sản phẩm bán ra tại cửa hàng theo kích thước và mã sản phẩm
        /// </summary>
        /// <param name="status">Complete = 2 - chỉ lấy 'Giao dịch đã hoàn thành'</param>
        /// <param name="storeId">StoreId</param>
        /// <param name="sizeId">SizeId</param>
        /// <param name="productId">ProductId</param>
        /// <returns></returns>
        public static int GetTotalQuantityInOrderByStatusStoreSizeProduct(int status, int storeId, int sizeId, int productId)
        {
            DbConnection.SetConnection(DbConnection.ConnectionName.Main);      
            try
            {
                return (int)SqlHelper.ExecuteScalar(DbCommon.ConnectionString, 
                                                        "eCommerce_Get_TotalQuantity_In_Order_By_Status_Store_Size_Product",
                                                        status, storeId, sizeId, productId);
            }
            catch { return 0; }
        }


       

       
    }
}
